/* ----------------------------------------------------------
   TLAČÍTKA DETAIL – SPOLEČNÉ NASTAVENÍ
   ---------------------------------------------------------- */

.product .product-btn.product-btn--detail,
.product-box .product-btn.product-btn--detail,
.product-card .product-btn.product-btn--detail,
.products-block__item .product-btn.product-btn--detail,
.product-inner .product-btn.product-btn--detail {
    display: block;
    width: 100%;
    margin: 10px auto 0;
    position: static;
    box-sizing: border-box;
    text-align: center;
}

.product-btn.product-btn--detail .btn.btn-primary,
.product-btn.product-btn--absolute .btn.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    text-align: center;
    line-height: 1;
    padding: 0 20px;
}

/* ----------------------------------------------------------
   FLEX ŘEŠENÍ – BEZ ABSOLUTE (stabilní i po mouseleave)
   ---------------------------------------------------------- */

/* Preferujeme .has-btn-host (přidá JS). :has je fallback bez JS. */
.has-btn-host,
.product:has(.product-btn.product-btn--absolute),
.product-box:has(.product-btn.product-btn--absolute),
.product-card:has(.product-btn.product-btn--absolute),
.products-block__item:has(.product-btn.product-btn--absolute),
.product-inner:has(.product-btn.product-btn--absolute) {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    overflow: visible !important;
    transition: none !important; /* zamezí „cuknutí“ po mouseleave */
}

/* Wrapper tlačítka – vždy na konci, přichycené ke dnu karty */
.has-btn-host > .product-btn.product-btn--absolute,
.product .product-btn.product-btn--absolute,
.product-box .product-btn.product-btn--absolute,
.product-card .product-btn.product-btn--absolute,
.products-block__item .product-btn.product-btn--absolute,
.product-inner .product-btn.product-btn--absolute {
    position: static !important;
    width: 100% !important;
    margin-top: auto !important;
    margin-bottom: 15px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    flex-shrink: 0 !important;
    order: 999 !important;
    transform: none !important;
    transition: none !important;
}

/* Samotné tlačítko – držet rozměr, nezalamovat */
.product-btn.product-btn--absolute .btn.btn-primary {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
}

/* ----------------------------------------------------------
   ROZMĚRY – DESKTOP (≥ 992 px): 181 × 51 px
   ---------------------------------------------------------- */
@media (min-width: 992px) {
    .product-btn.product-btn--detail .btn.btn-primary,
    .product-btn.product-btn--absolute .btn.btn-primary,
    .product-btn.product-btn--detail .btn.btn-primary:hover,
    .product-btn.product-btn--absolute .btn.btn-primary:hover,
    .product-btn.product-btn--detail .btn.btn-primary:focus,
    .product-btn.product-btn--absolute .btn.btn-primary:focus,
    .product-btn.product-btn--detail .btn.btn-primary:active,
    .product-btn.product-btn--absolute .btn.btn-primary:active {
        width: 181px !important;
        height: 51px !important;
        min-height: 51px !important;
    }
}

/* ----------------------------------------------------------
   ROZMĚRY – MOBIL (≤ 767 px): 257 × 41 px
   ---------------------------------------------------------- */
@media (max-width: 767px) {
    .product-btn.product-btn--detail .btn.btn-primary,
    .product-btn.product-btn--absolute .btn.btn-primary,
    .product-btn.product-btn--detail .btn.btn-primary:hover,
    .product-btn.product-btn--absolute .btn.btn-primary:hover,
    .product-btn.product-btn--detail .btn.btn-primary:focus,
    .product-btn.product-btn--absolute .btn.btn-primary:focus,
    .product-btn.product-btn--detail .btn.btn-primary:active,
    .product-btn.product-btn--absolute .btn.btn-primary:active {
        width: 257px !important;
        height: 41px !important;
        min-height: 41px !important;
        padding: 0 16px;
    }
}

/* ----------------------------------------------------------
   VOLITELNÉ: jemné srovnání gridu (karty bude JS rovnat na stejnou výšku)
   ---------------------------------------------------------- */
.equalized-card {
    /* min-height nastaví JS inline podle nejvyšší karty */
}
